Communications across computer networks have become a widely available form of communications. The communications can be between many forms of computing devices, including: mobile devices, servers, clients to servers, servers to clients, game consoles, desktop computers, laptops and a myriad of other computing devices. The form of data being sent in these communications usually takes the form of packets of information that are transmitted across networks between the computing devices.
Data may be transmitted through the internet using packets or chunks of information. Packet formatting and the method for delivering packets across the internet are governed by the protocol known as TCP/IP (transmission control protocol/internet protocol). For a TCP data transmission to be completed, the recipient TCP layer may collect the packets and organize the packets in the order in which the packets were sent. If a packet is lost, the protocol interprets this as a sign that the network is congested and then the transmission speed is immediately halved, and from there the packets speed attempts to increase again at a slow rate. This is beneficial in some situations and inefficient in other situation. Unfortunately, the TCP the protocol does not have the intelligence to know how to otherwise address problems in network congestion.